package com.wl.application.config;

import com.wl.application.common.all.Result;
import com.wl.application.common.childException.BusinessException;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

/**
 * @author wl
 * @version 1.0
 * @date 2022/6/16
 * @description: 全局异常处理器
 */

@RestControllerAdvice //该注解标志着该类是一个异常解析器 且返回值是json数据类型
@Slf4j //该注解是引入日志记录控件
public class ExceptionResolver {

    //创建记录日志对象
    private Logger logger = LoggerFactory.getLogger(ExceptionResolver.class);

    /**
     * 处理系统异常
     */
    @ExceptionHandler({Exception.class})
    public Result SysException(Exception e){
        //记录日志
        logger.error("系统错误",e);

        return Result.error();

    }
    /**
     * 处理业务异常
     */
    @ExceptionHandler({BusinessException.class})
    public Result BusinessExceptionManage(BusinessException e){
        //记录日志
        logger.error("业务异常",e);
        return Result.fault(e.getCode(),e.getMsg());
    }

}
